The present invention relates generally to a computer numerical control, and particularly to a computer numerical control that uses a logic engine executing under a personal computer operating system for its logic and input/output requirements.
A variety of controls are used to monitor and control various types of machine motion. For example, processor-based controls, such as computer numerical controls (CNCs), are used to control the motion of machines, such as machine tools. Machine tools are used in a variety of manufacturing environments. Within these environments, a CNC may be used to control the movements of a cutter, for example, on a machine tool when machining a part or component for use in the manufacture of a given product.
CNC-type controllers have become popular due, in part, to their adaptability and relative ease-of-use in controlling machine motion. When machining a part, for example, a machine motion control program can be loaded into the CNC which then causes the machine to move according to the commands established by the part program (motion control program). The control is designed to read the part program instructions and provide appropriate outputs to the various servos, stepper motors, etc. that physically move the components of the machine.
The CNC also may be used to monitor multiple items related to motion control. For example, in a closed loop system, a variety of sensors are disposed on the machine to provide outputs to the CNC indicative of various parameters, such as position and speed. The CNC compares the sensed parameters with the programmed parameters to detect and correct for any error between the values. As is understood by those of ordinary skill in the art, CNC-type controllers are able to process a wide variety of data related to controlling machine motion, monitoring machine motion, storing and manipulating part program data, etc.
Traditionally, CNCs have been configured in various ways depending on the CNC design established by the CNC manufacturer and/or end user. For example, CNCs typically have included a visual interface, such as a CRT, and a keyboard that allow machine control programs to be entered or edited directly at the CNC. In some systems, machine control programs can be prepared off site at a workstation, such as a personal computer, that is configured to permit an operator to prepare motion control programs in language syntax that is recognizable and useable by the CNC. The program is then loaded onto a storage medium, such as a punch tape, magnetic tape or diskette, and physically taken to the CNC where it is downloaded for use by the CNC in controlling machine motion. For some applications, the program may be transferred electronically from the personal computer to the CNC for execution. In any of these situations, the motion control program must be prepared in a format recognizable and useable by the CNC, and its execution is controlled solely by the CNC.
Simultaneously with the development of CNC-type machine controllers, personal computers and personal computer operating systems have evolved. Both CNC controllers and personal computers have independently been designed to process logic applications. Each type of system utilizes what is commonly known as a logic engine to process logic related functions. However, a logic engine executing under a standard operating system of a personal computer has not been used as a sole logic engine to control the logic functions of a CNC. The traditional CNC has utilized its own logic engine based on the custom or proprietary CNC system.
In a typical CNC controller, a CNC executive controls execution of the motion control part program blocks. However, each of the part program blocks is subjected to the control of a logic engine that ultimately decides whether it is appropriate for a given part program block to be executed. Certain part program commands or operations require synchronization of part program block execution with the scan frequency of the logic engine. With other part program blocks, however, it may not be necessary for the CNC controlled block execution to be synchronized with the scan rate of the logic engine. Because of unique CNC programming and operating systems as well as the necessary cooperation between the CNC executive and the logic engine, logic engines that execute based on personal computer operating systems have not been amenable to synchronous part program execution.
It would be advantageous to be able to utilize a logic engine that executes on a personal computer operating system in combination with a CNC executive for part program execution. This would allow the ready use of a wider variety of logic applications in a CNC environment.
The present invention relates to a computer numerical control system for controlling and monitoring machine motion. The system includes a CNC executive and a personal computer. The personal computer has a logic engine that executes under an operating system of the personal computer. The logic engine is operatively coupled to the CNC executive such that a logic application can be executed in synchronization with the CNC executive.
According to another aspect of the present invention, a system is provided for controlling manipulation of a component, such as a part. The system includes a machine tool connectable to the component. Additionally, a CNC executive is coupled to the machine tool to provide commands that control activity of the machine tool in manipulating the component. The system further includes a logic engine capable of executing under a personal computer operating system. The logic engine is disposed in communication with the CNC executive for cooperation therewith.
According to another aspect of the present invention, a method is provided for executing a part program on a machine. The method includes utilizing a logic application based on a personal computer operating system. The method further includes providing a CNC executive capable of executing at least a portion of the part program. Also, the method includes synchronizing the execution of the logic application with the execution of the portion of the part program.